// utils/types.ts
/**
 * 请求配置类型（所有接口调用都要遵守这个规则）
 * 为什么需要？：统一参数格式，避免每个接口都写重复的配置项（比如 url、method）
 */
export interface RequestOptions {
	url : string;          // 接口的「路径部分」（不需要拼 BaseURL，比如 '/auth/login'）
	method ?: 'GET' | 'POST' | 'PUT' | 'DELETE'; // 请求方法（默认 GET，可选）
	data ?: any;           // 请求参数（POST/PUT 时传的数据，比如登录的 username/password）
	header ?: Record<string, string>; // 自定义请求头（可选，比如额外加 'X-Custom-Header'）
}

/**
 * 通用响应数据类型（后端返回的统一格式）
 * 为什么需要？：后端所有接口都按这个格式返回，前端不用每个接口都解析不同结构
 * code：状态码（200=成功，401=未授权，500=服务器错）
 * message：提示信息（比如“登录成功”）
 * result：真实数据（泛型 T，适配不同接口的返回数据，比如登录返回 token）
 */
export interface ResponseData<T = any> {
  code: number;
  msg: string;
  time: string;
  data: T;
}